/**
 * 文件遍历方法
 * @param filePath 需要遍历的文件路径
 */
var fs = require("fs");
var path = require("path")

let Tools = {};
Tools.getFiles = function(filePath, paths){
    let that = this;
    let files = fs.readdirSync(filePath);
    if (files){
        files.forEach(function(filename){
            //获取当前文件的绝对路径
            var filedir = path.join(filePath,filename);
            let stats = fs.statSync(filedir)
            if (stats){
                var isFile = stats.isFile();//是文件
                var isDir = stats.isDirectory();//是文件夹
                if(isFile){
                    paths.push(filedir);
                }
                if(isDir){
                    that.getFiles(filedir, paths);//递归，如果是文件夹，就继续遍历该文件夹下面的文件
                }
            }
        })
    }
}
Tools.getFilesPath = function(filePath){
    let that = this;
    //根据文件路径读取文件，返回文件列表
    fs.readdirSync(filePath,function(err,files){
        if(err){
            console.warn(err)
        }else{
            //遍历读取到的文件列表
            files.forEach(function(filename){
                //获取当前文件的绝对路径
                var filedir = path.join(filePath,filename);
                //根据文件路径获取文件信息，返回一个fs.Stats对象
                fs.statSync(filedir,function(eror,stats){
                    if(eror){
                        console.warn('获取文件stats失败');
                    }else{
                        var isFile = stats.isFile();//是文件
                        var isDir = stats.isDirectory();//是文件夹
                        if(isFile){
                            // paths.push(filedir);
                            console.log(filedir);
                        }
                        if(isDir){
                            that.getFilesPath(filedir);//递归，如果是文件夹，就继续遍历该文件夹下面的文件
                        }
                    }
                })
            });
        }
    });
}

Tools.getFilesPathRecursion = function(filePath){
    let files = [];
    this.getFiles(filePath, files);
    return files;
}


/**
 * 拷贝文件
 * @param {*} source 
 * @param {*} destination 
 */
Tools.copyFile = function(source, destination){
    console.log("targetName:", destination)
    const destDir = path.dirname(destination);

    if (!fs.existsSync(destDir)) {
        fs.mkdirSync(destDir, { recursive: true });
    }

    fs.copyFileSync(source, destination);
};


// exports.fileDisplay = tools.fileDisplay;

module.exports = Tools;